﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.IO;


namespace Proyecta.Experto
{
    public partial class Expertos : System.Web.UI.Page
    {
        private string id;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                DataToUi(Request.QueryString["id"]);
            }
        }

        protected void Alert(string message)
        {
            Alert(message, "");
        }

        protected void Alert(string message, string redirect)
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            sb.Append("<script language='javascript'>");
            sb.Append("alert('" + message + "')");
            if (!string.IsNullOrWhiteSpace(redirect)) sb.Append("window.location.href = '" + redirect + "';");
            sb.Append("</script>");

            // Register the script code with the page.
            ClientScript.RegisterStartupScript(this.GetType(), "FocusScript", sb.ToString());
        }

        protected void btnagregar_Click(object sender, EventArgs e)
        {
            try
            {
                Insertar();
                Alert("El experto fue registrado satisfactoriamente.", "Index.aspx");
            }
            catch (Exception ex)
            {
                Alert("Error en el servidor al procesar solicitud: " + ex.Message);
            }
        }

        protected void btnmodoficar_Click(object sender, EventArgs e)
        {
            try
            {
                Modificar();
                Alert("El experto fue modificado satisfactoriamente.", "Index.aspx");
            }
            catch (Exception ex)
            {
                Alert("Error en el servidor al procesar solicitud: " + ex.Message);
            }
        }

        protected void btneliminar_Click(object sender, EventArgs e)
        {
            try
            {
                Eliminar();
                Alert("El experto fue registrado satisfactoriamente.", "Index.aspx");
            }
            catch (Exception ex)
            {
                Alert("Error en el servidor al procesar solicitud: " + ex.Message);
            }
        }
        
        public void Insertar()
        {
            Proyecta.Data.BO.UsuariosBO bo = new Data.BO.UsuariosBO();
            Proyecta.Data.DAO.UsuariosDAO dao = new Data.DAO.UsuariosDAO();

            bo.idUsuario = Convert.ToInt32(txtidusuario.Value);
            bo.idRol = 3;
            bo.idInstitucion = Convert.ToInt32(DropList.SelectedValue);
            bo.Nombres = txtNombre.Text;
            bo.ApellidoPaterno = txtApellidoP.Text;
            bo.ApellidoMaterno = txtApellidoM.Text;
            bo.FechaNacimiento = Convert.ToDateTime(txtFechaN);
            bo.eliminado = false;
            bo.Email = txtCorreo.Text;
            bo.Contrasena = Texcontraseña.Text;
            bo.Estado = txtEstado.Text;
            bo.Ciudad = txtCiudad.Text;
            bo.Pais = txtpais.Text;
            bo.TelefonoFijo = txtTelefono.Text;
            bo.TelefonoMovil = txtCelular.Text;
            bo.Biografia = txtxbiogra.Text;
            bo.ExperienciaAca = txtexperienciaA.Text;
            bo.ExperienciaPro = txtexp.Text;
            bo.PaginaWeb = Textpagina.Text;
            bo.Facebook = Textfacebook.Text;
            bo.Twitter = Textwit.Text;
            bo.LinkedIn = TextLink.Text;

            if (fupFoto.HasFile)
            {
                string foto = System.IO.Path.GetFileName(fupFoto.FileName);
                string userFolder = Server.MapPath("~/App_LocalResources/" + id);
                if (!Directory.Exists(userFolder)) Directory.CreateDirectory(userFolder);
                foto = userFolder + "\\" + foto;
                fupFoto.SaveAs(userFolder);
                bo.Foto = foto;
            }

            dao.Insertar(bo);
     
        }
        
        public void Modificar()
        {
            Proyecta.Data.BO.UsuariosBO bo = new Data.BO.UsuariosBO();
            Proyecta.Data.DAO.UsuariosDAO dao = new Data.DAO.UsuariosDAO();

            bo.idUsuario = Convert.ToInt32(txtidusuario.Value);
            bo.idRol = 3;
            bo.idInstitucion = Convert.ToInt32(DropList.SelectedValue);
            bo.Nombres = txtNombre.Text;
            bo.ApellidoPaterno = txtApellidoP.Text;
            bo.ApellidoMaterno = txtApellidoM.Text;
            bo.FechaNacimiento = Convert.ToDateTime(txtFechaN);
            bo.eliminado = false;
            bo.Email = txtCorreo.Text;
            bo.Contrasena = Texcontraseña.Text;
            bo.Estado = txtEstado.Text;
            bo.Ciudad = txtCiudad.Text;
            bo.Pais = txtpais.Text;
            bo.TelefonoFijo = txtTelefono.Text;
            bo.TelefonoMovil = txtCelular.Text;
            bo.Biografia = txtxbiogra.Text;
            bo.ExperienciaAca = txtexperienciaA.Text;
            bo.ExperienciaPro = txtexp.Text;
            bo.PaginaWeb = Textpagina.Text;
            bo.Facebook = Textfacebook.Text;
            bo.Twitter = Textwit.Text;
            bo.LinkedIn = TextLink.Text;

            if (fupFoto.HasFile)
            {
                string foto = System.IO.Path.GetFileName(fupFoto.FileName);
                string userFolder = Server.MapPath("~/App_LocalResources/" + id);
                if (!Directory.Exists(userFolder)) Directory.CreateDirectory(userFolder);
                foto = userFolder + "\\" + foto;
                fupFoto.SaveAs(userFolder);
                bo.Foto = foto;
            }
           dao.Modificar(bo);
        }

        public void Eliminar()//Accion de Eliminar
        {
            Proyecta.Data.BO.UsuariosBO bo = new Data.BO.UsuariosBO();
            Proyecta.Data.DAO.UsuariosDAO dao = new Data.DAO.UsuariosDAO();
            bo.idUsuario = Convert.ToInt32(txtidusuario.Value);
            dao.Eliminar(bo);
        }

        public void Redireccionar() //Link de Usuarios a index
        {
            Response.Redirect("Index.aspx");
        }

        public void DataToUi(string id)//Carga los datos en el web form con la referencia del index
        {
            try//si no trae datos desde Index... sera nulo
            {
                DataSet ds = null;
                Proyecta.Data.BO.UsuariosBO bo = new Data.BO.UsuariosBO();
                Proyecta.Data.DAO.UsuariosDAO dao = new Data.DAO.UsuariosDAO();
                bo.idUsuario = int.Parse(id);

                ds = dao.MostrarporID(bo);

                txtidusuario.Value = ds.Tables[0].Rows[0]["idUsuario"].ToString();
                DropList.SelectedValue =ds.Tables[0].Rows[0]["idInstitucion"].ToString();
                txtNombre.Text = ds.Tables[0].Rows[0]["Nombres"].ToString();
                txtApellidoP.Text = ds.Tables[0].Rows[0]["ApellidoPaterno"].ToString();
                txtApellidoM.Text = ds.Tables[0].Rows[0]["ApellidoMaterno"].ToString();
                txtCorreo.Text = ds.Tables[0].Rows[0]["Email"].ToString();
                Texcontraseña.Text = ds.Tables[0].Rows[0]["Contrasena"].ToString();
                txtFechaN.Text = ds.Tables[0].Rows[0]["FechaNacimiento"].ToString();
                txtEstado.Text = ds.Tables[0].Rows[0]["Estado"].ToString();
                txtCiudad.Text = ds.Tables[0].Rows[0]["Ciudad"].ToString();
                txtpais.Text = ds.Tables[0].Rows[0]["Pais"].ToString();
                txtTelefono.Text = ds.Tables[0].Rows[0]["TelefonoFijo"].ToString();
                txtCelular.Text = ds.Tables[0].Rows[0]["TelefonoMovil"].ToString();
                txtxbiogra.Text = ds.Tables[0].Rows[0]["Biografia"].ToString();
                txtexp.Text = ds.Tables[0].Rows[0]["ExperienciaPro"].ToString();
                txtexperienciaA.Text = ds.Tables[0].Rows[0]["ExperienciaAca"].ToString();
                Textpagina.Text =ds.Tables[0].Rows[0]["PaginaWeb"].ToString();
                Textfacebook.Text= ds.Tables[0].Rows[0]["Facebook"].ToString();
                Textwit.Text= ds.Tables[0].Rows[0]["Twitter"].ToString();
                TextLink.Text = ds.Tables[0].Rows[0]["LinkedIn"].ToString();

            }
            catch (Exception ex)
            {

            }

        }
    }
}